@@ -22,8 +22,23 @@ |
||
22 | 22 |
0505AD0B21DF348F00404071 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0505ACFC21DF106E00404071 /* libc++.tbd */; }; |
23 | 23 |
0505AD0C21DF34B600404071 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0505ACFA21DF106000404071 /* libsqlite3.0.tbd */; }; |
24 | 24 |
0505AD0D21DF34E100404071 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0505AD0021DF107D00404071 /* CoreTelephony.framework */; }; |
25 |
+ 050D717E2253162C0076CE06 /* RxDataSources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC421CA1997004EF1BE /* RxDataSources.framework */; }; |
|
26 |
+ 050D7181225317AD0076CE06 /* PaiaiUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F2E21C94B32004EF1BE /* PaiaiUIKit.framework */; }; |
|
27 |
+ 050D7182225317AD0076CE06 /* PaiaiUIKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F2E21C94B32004EF1BE /* PaiaiUIKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
28 |
+ 050D7183225317AD0076CE06 /* PaiaiDataKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F6A21C95373004EF1BE /* PaiaiDataKit.framework */; }; |
|
29 |
+ 050D7184225317AD0076CE06 /* PaiaiDataKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F6A21C95373004EF1BE /* PaiaiDataKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
30 |
+ 050D7187225317AD0076CE06 /* Paiai_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F8E21C9E5E8004EF1BE /* Paiai_iOS.framework */; }; |
|
31 |
+ 050D7188225317AD0076CE06 /* Paiai_iOS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F8E21C9E5E8004EF1BE /* Paiai_iOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
32 |
+ 050D718E22531AF40076CE06 /* RxDataSources.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D718D22531AF40076CE06 /* RxDataSources.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
33 |
+ 050D719022531B180076CE06 /* Kingfisher.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D718F22531B180076CE06 /* Kingfisher.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
34 |
+ 050D719222531B360076CE06 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719122531B360076CE06 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
35 |
+ 050D719522531B520076CE06 /* ObjectMapper.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719422531B520076CE06 /* ObjectMapper.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
36 |
+ 050D719722531B650076CE06 /* PullToRefresh.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719622531B650076CE06 /* PullToRefresh.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
37 |
+ 050D719922531B780076CE06 /* RxCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719822531B780076CE06 /* RxCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
38 |
+ 050D719B22531B860076CE06 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719A22531B860076CE06 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
39 |
+ 050D719D22531BA60076CE06 /* SQLite.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719C22531BA60076CE06 /* SQLite.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
40 |
+ 050D719E22531BBF0076CE06 /* Differentiator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FBD21CA194B004EF1BE /* Differentiator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
25 | 41 |
05130F4021C94B33004EF1BE /* PaiaiUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 05130F3021C94B32004EF1BE /* PaiaiUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
26 |
- 05130F4321C94B33004EF1BE /* PaiaiUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F2E21C94B32004EF1BE /* PaiaiUIKit.framework */; }; |
|
27 | 42 |
05130F5721C94C12004EF1BE /* AlertAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F4F21C94C12004EF1BE /* AlertAnimator.swift */; }; |
28 | 43 |
05130F5921C94C12004EF1BE /* AlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F5121C94C12004EF1BE /* AlertViewController.swift */; }; |
29 | 44 |
05130F5A21C94C12004EF1BE /* PresentDisappearAnimatedTransitioning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F5221C94C12004EF1BE /* PresentDisappearAnimatedTransitioning.swift */; }; |
@@ -33,16 +48,11 @@ |
||
33 | 48 |
05130F6321C94C7A004EF1BE /* SideViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F6021C94C79004EF1BE /* SideViewController.swift */; }; |
34 | 49 |
05130F6421C94C7A004EF1BE /* PageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F6221C94C79004EF1BE /* PageViewController.swift */; }; |
35 | 50 |
05130F7C21C95373004EF1BE /* PaiaiDataKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 05130F6C21C95373004EF1BE /* PaiaiDataKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
36 |
- 05130F7F21C95373004EF1BE /* PaiaiDataKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F6A21C95373004EF1BE /* PaiaiDataKit.framework */; }; |
|
37 |
- 05130F8021C95373004EF1BE /* PaiaiDataKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F6A21C95373004EF1BE /* PaiaiDataKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
38 | 51 |
05130FA021C9E5E9004EF1BE /* Paiai_iOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 05130F9021C9E5E8004EF1BE /* Paiai_iOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
39 |
- 05130FA321C9E5E9004EF1BE /* Paiai_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F8E21C9E5E8004EF1BE /* Paiai_iOS.framework */; }; |
|
40 |
- 05130FA421C9E5E9004EF1BE /* Paiai_iOS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130F8E21C9E5E8004EF1BE /* Paiai_iOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
41 | 52 |
05130FB021C9E6CD004EF1BE /* OrderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130FAF21C9E6CD004EF1BE /* OrderItem.swift */; }; |
42 | 53 |
05130FB321C9E76A004EF1BE /* GroupItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130FB221C9E76A004EF1BE /* GroupItem.swift */; }; |
43 | 54 |
05130FB521C9E7CE004EF1BE /* MessageItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130FB421C9E7CE004EF1BE /* MessageItem.swift */; }; |
44 | 55 |
05130FB721C9E80F004EF1BE /* MessageListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130FB621C9E80F004EF1BE /* MessageListItem.swift */; }; |
45 |
- 05130FBC21C9F708004EF1BE /* Cartfile in Resources */ = {isa = PBXBuildFile; fileRef = 05130FBB21C9F707004EF1BE /* Cartfile */; }; |
|
46 | 56 |
05130FD221CA1A8A004EF1BE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEBD1021CA8D680004DBDE0 /* AppDelegate.swift */; }; |
47 | 57 |
05130FD321CA1AD4004EF1BE /* PhotoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 054863661FA326CB00A39DA0 /* PhotoCell.swift */; }; |
48 | 58 |
05130FD421CA1AD4004EF1BE /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A69FFA791E7002970006FEE0 /* LoginViewController.swift */; }; |
@@ -153,7 +163,6 @@ |
||
153 | 163 |
0513109C21CA4103004EF1BE /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0513106121CA22B5004EF1BE /* Alamofire.framework */; }; |
154 | 164 |
0513109F21CA4103004EF1BE /* ObjectMapper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC921CA1997004EF1BE /* ObjectMapper.framework */; }; |
155 | 165 |
051310A221CA4103004EF1BE /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC221CA1997004EF1BE /* RxCocoa.framework */; }; |
156 |
- 051310A321CA4103004EF1BE /* RxDataSources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC421CA1997004EF1BE /* RxDataSources.framework */; }; |
|
157 | 166 |
051310A421CA4103004EF1BE /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC321CA1997004EF1BE /* RxSwift.framework */; }; |
158 | 167 |
051310A621CA4103004EF1BE /* SQLite.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC821CA1997004EF1BE /* SQLite.framework */; }; |
159 | 168 |
051310B421CB5EC3004EF1BE /* Kingfisher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 051310B321CB5EC3004EF1BE /* Kingfisher.framework */; }; |
@@ -176,7 +185,6 @@ |
||
176 | 185 |
0543E80F21D1FD1100A42807 /* GroupDetailItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543E80E21D1FD1100A42807 /* GroupDetailItem.swift */; }; |
177 | 186 |
0546D9852242460700742939 /* OriginData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0546D9842242460700742939 /* OriginData.swift */; }; |
178 | 187 |
054B6C45223F884600939FE6 /* PhotoDetailRemoteAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 054B6C44223F884600939FE6 /* PhotoDetailRemoteAPI.swift */; }; |
179 |
- 054B6C46223F966A00939FE6 /* RxDataSources.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FC421CA1997004EF1BE /* RxDataSources.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
|
180 | 188 |
05594BFF2240BEDE002D4910 /* PhotoDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05594BFE2240BEDE002D4910 /* PhotoDetailViewModel.swift */; }; |
181 | 189 |
05594C012240BF9C002D4910 /* PhotoPurchaseViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05594C002240BF9C002D4910 /* PhotoPurchaseViewModel.swift */; }; |
182 | 190 |
05594C032240E94E002D4910 /* PhotoDetailImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05594C022240E94E002D4910 /* PhotoDetailImageCell.swift */; }; |
@@ -186,8 +194,6 @@ |
||
186 | 194 |
0569F6152200438C000A75CA /* Group.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0569F613220042AF000A75CA /* Group.storyboard */; }; |
187 | 195 |
0569F61822014B24000A75CA /* NavigationBarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0569F61722014B24000A75CA /* NavigationBarDelegate.swift */; }; |
188 | 196 |
0569F61A22014B30000A75CA /* NavigationBarProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0569F61922014B30000A75CA /* NavigationBarProxy.swift */; }; |
189 |
- 0572B2C121E2FB3E00EAD2A2 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0572B2BC21E2FB3C00EAD2A2 /* README.txt */; }; |
|
190 |
- 0572B2C221E2FB3E00EAD2A2 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0572B2BC21E2FB3C00EAD2A2 /* README.txt */; }; |
|
191 | 197 |
0572B2C321E2FB3E00EAD2A2 /* WXApiObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0572B2BD21E2FB3C00EAD2A2 /* WXApiObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
192 | 198 |
0572B2C421E2FB3E00EAD2A2 /* WechatAuthSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 0572B2BE21E2FB3D00EAD2A2 /* WechatAuthSDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
193 | 199 |
0572B2C621E2FB3E00EAD2A2 /* libWeChatSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0572B2BF21E2FB3D00EAD2A2 /* libWeChatSDK.a */; }; |
@@ -256,27 +262,27 @@ |
||
256 | 262 |
/* End PBXBuildFile section */ |
257 | 263 |
|
258 | 264 |
/* Begin PBXContainerItemProxy section */ |
259 |
- 05130F4121C94B33004EF1BE /* PBXContainerItemProxy */ = { |
|
260 |
- isa = PBXContainerItemProxy; |
|
261 |
- containerPortal = 6CEBD0F71CA8D680004DBDE0 /* Project object */; |
|
262 |
- proxyType = 1; |
|
263 |
- remoteGlobalIDString = 05130F2D21C94B32004EF1BE; |
|
264 |
- remoteInfo = PaiaiUIKit; |
|
265 |
- }; |
|
266 |
- 05130F7D21C95373004EF1BE /* PBXContainerItemProxy */ = { |
|
265 |
+ 050D7185225317AD0076CE06 /* PBXContainerItemProxy */ = { |
|
267 | 266 |
isa = PBXContainerItemProxy; |
268 | 267 |
containerPortal = 6CEBD0F71CA8D680004DBDE0 /* Project object */; |
269 | 268 |
proxyType = 1; |
270 | 269 |
remoteGlobalIDString = 05130F6921C95373004EF1BE; |
271 | 270 |
remoteInfo = PaiaiDataKit; |
272 | 271 |
}; |
273 |
- 05130FA121C9E5E9004EF1BE /* PBXContainerItemProxy */ = { |
|
272 |
+ 050D7189225317AD0076CE06 /* PBXContainerItemProxy */ = { |
|
274 | 273 |
isa = PBXContainerItemProxy; |
275 | 274 |
containerPortal = 6CEBD0F71CA8D680004DBDE0 /* Project object */; |
276 | 275 |
proxyType = 1; |
277 | 276 |
remoteGlobalIDString = 05130F8D21C9E5E8004EF1BE; |
278 | 277 |
remoteInfo = Paiai_iOS; |
279 | 278 |
}; |
279 |
+ 05130F4121C94B33004EF1BE /* PBXContainerItemProxy */ = { |
|
280 |
+ isa = PBXContainerItemProxy; |
|
281 |
+ containerPortal = 6CEBD0F71CA8D680004DBDE0 /* Project object */; |
|
282 |
+ proxyType = 1; |
|
283 |
+ remoteGlobalIDString = 05130F2D21C94B32004EF1BE; |
|
284 |
+ remoteInfo = PaiaiUIKit; |
|
285 |
+ }; |
|
280 | 286 |
051310A721CA451B004EF1BE /* PBXContainerItemProxy */ = { |
281 | 287 |
isa = PBXContainerItemProxy; |
282 | 288 |
containerPortal = 6CEBD0F71CA8D680004DBDE0 /* Project object */; |
@@ -294,18 +300,27 @@ |
||
294 | 300 |
/* End PBXContainerItemProxy section */ |
295 | 301 |
|
296 | 302 |
/* Begin PBXCopyFilesBuildPhase section */ |
297 |
- 05130F4821C94B33004EF1BE /* Embed Frameworks */ = { |
|
303 |
+ 050D718B225317AD0076CE06 /* Embed Frameworks */ = { |
|
298 | 304 |
isa = PBXCopyFilesBuildPhase; |
299 |
- buildActionMask = 8; |
|
305 |
+ buildActionMask = 2147483647; |
|
300 | 306 |
dstPath = ""; |
301 | 307 |
dstSubfolderSpec = 10; |
302 | 308 |
files = ( |
303 |
- 054B6C46223F966A00939FE6 /* RxDataSources.framework in Embed Frameworks */, |
|
304 |
- 05130F8021C95373004EF1BE /* PaiaiDataKit.framework in Embed Frameworks */, |
|
305 |
- 05130FA421C9E5E9004EF1BE /* Paiai_iOS.framework in Embed Frameworks */, |
|
309 |
+ 050D719E22531BBF0076CE06 /* Differentiator.framework in Embed Frameworks */, |
|
310 |
+ 050D719D22531BA60076CE06 /* SQLite.framework in Embed Frameworks */, |
|
311 |
+ 050D719B22531B860076CE06 /* RxSwift.framework in Embed Frameworks */, |
|
312 |
+ 050D719922531B780076CE06 /* RxCocoa.framework in Embed Frameworks */, |
|
313 |
+ 050D719722531B650076CE06 /* PullToRefresh.framework in Embed Frameworks */, |
|
314 |
+ 050D719522531B520076CE06 /* ObjectMapper.framework in Embed Frameworks */, |
|
315 |
+ 050D719022531B180076CE06 /* Kingfisher.framework in Embed Frameworks */, |
|
316 |
+ 050D719222531B360076CE06 /* Alamofire.framework in Embed Frameworks */, |
|
317 |
+ 050D718E22531AF40076CE06 /* RxDataSources.framework in Embed Frameworks */, |
|
318 |
+ 050D7184225317AD0076CE06 /* PaiaiDataKit.framework in Embed Frameworks */, |
|
319 |
+ 050D7188225317AD0076CE06 /* Paiai_iOS.framework in Embed Frameworks */, |
|
320 |
+ 050D7182225317AD0076CE06 /* PaiaiUIKit.framework in Embed Frameworks */, |
|
306 | 321 |
); |
307 | 322 |
name = "Embed Frameworks"; |
308 |
- runOnlyForDeploymentPostprocessing = 1; |
|
323 |
+ runOnlyForDeploymentPostprocessing = 0; |
|
309 | 324 |
}; |
310 | 325 |
/* End PBXCopyFilesBuildPhase section */ |
311 | 326 |
|
@@ -323,6 +338,15 @@ |
||
323 | 338 |
0505B34F1F7E4B9A009E4ED2 /* NetworkApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkApi.swift; sourceTree = "<group>"; }; |
324 | 339 |
0506441E1F8D09C00035857E /* StatusModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusModel.swift; sourceTree = "<group>"; }; |
325 | 340 |
05087F6721B8F9530024A117 /* ContainerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainerViewController.swift; sourceTree = "<group>"; }; |
341 |
+ 050D718D22531AF40076CE06 /* RxDataSources.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxDataSources.framework; path = Carthage/Build/iOS/RxDataSources.framework; sourceTree = "<group>"; }; |
|
342 |
+ 050D718F22531B180076CE06 /* Kingfisher.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kingfisher.framework; path = Carthage/Build/iOS/Kingfisher.framework; sourceTree = "<group>"; }; |
|
343 |
+ 050D719122531B360076CE06 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = "<group>"; }; |
|
344 |
+ 050D719322531B440076CE06 /* Kingfisher.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kingfisher.framework; path = Carthage/Build/iOS/Kingfisher.framework; sourceTree = "<group>"; }; |
|
345 |
+ 050D719422531B520076CE06 /* ObjectMapper.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ObjectMapper.framework; path = Carthage/Build/iOS/ObjectMapper.framework; sourceTree = "<group>"; }; |
|
346 |
+ 050D719622531B650076CE06 /* PullToRefresh.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PullToRefresh.framework; path = Carthage/Build/iOS/PullToRefresh.framework; sourceTree = "<group>"; }; |
|
347 |
+ 050D719822531B780076CE06 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; }; |
|
348 |
+ 050D719A22531B860076CE06 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; }; |
|
349 |
+ 050D719C22531BA60076CE06 /* SQLite.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SQLite.framework; path = Carthage/Build/iOS/SQLite.framework; sourceTree = "<group>"; }; |
|
326 | 350 |
050E210F21B8CE8A008E1352 /* AppCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = "<group>"; }; |
327 | 351 |
050E211121B8F2D4008E1352 /* HomeCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeCoordinator.swift; sourceTree = "<group>"; }; |
328 | 352 |
050E211321B8F39C008E1352 /* MineCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineCoordinator.swift; sourceTree = "<group>"; }; |
@@ -353,7 +377,6 @@ |
||
353 | 377 |
05130FB621C9E80F004EF1BE /* MessageListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageListItem.swift; sourceTree = "<group>"; }; |
354 | 378 |
05130FBB21C9F707004EF1BE /* Cartfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cartfile; sourceTree = "<group>"; }; |
355 | 379 |
05130FBD21CA194B004EF1BE /* Differentiator.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Differentiator.framework; path = Carthage/Build/iOS/Differentiator.framework; sourceTree = "<group>"; }; |
356 |
- 05130FC021CA196F004EF1BE /* ESPullToRefresh.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ESPullToRefresh.framework; path = Carthage/Build/iOS/ESPullToRefresh.framework; sourceTree = "<group>"; }; |
|
357 | 380 |
05130FC221CA1997004EF1BE /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; }; |
358 | 381 |
05130FC321CA1997004EF1BE /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; }; |
359 | 382 |
05130FC421CA1997004EF1BE /* RxDataSources.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxDataSources.framework; path = Carthage/Build/iOS/RxDataSources.framework; sourceTree = "<group>"; }; |
@@ -596,23 +619,23 @@ |
||
596 | 619 |
isa = PBXFrameworksBuildPhase; |
597 | 620 |
buildActionMask = 2147483647; |
598 | 621 |
files = ( |
622 |
+ 050D717E2253162C0076CE06 /* RxDataSources.framework in Frameworks */, |
|
599 | 623 |
0505AD0D21DF34E100404071 /* CoreTelephony.framework in Frameworks */, |
600 | 624 |
0505AD0C21DF34B600404071 /* libsqlite3.0.tbd in Frameworks */, |
601 | 625 |
0505AD0B21DF348F00404071 /* libc++.tbd in Frameworks */, |
602 | 626 |
0505AD0A21DF347400404071 /* CFNetwork.framework in Frameworks */, |
627 |
+ 050D7187225317AD0076CE06 /* Paiai_iOS.framework in Frameworks */, |
|
603 | 628 |
0505AD0921DF345E00404071 /* Security.framework in Frameworks */, |
604 | 629 |
0505AD0621DF342F00404071 /* libz.tbd in Frameworks */, |
630 |
+ 050D7181225317AD0076CE06 /* PaiaiUIKit.framework in Frameworks */, |
|
631 |
+ 050D7183225317AD0076CE06 /* PaiaiDataKit.framework in Frameworks */, |
|
605 | 632 |
051310B421CB5EC3004EF1BE /* Kingfisher.framework in Frameworks */, |
606 | 633 |
052BF1C821E344020010D270 /* PullToRefresh.framework in Frameworks */, |
607 | 634 |
0513109C21CA4103004EF1BE /* Alamofire.framework in Frameworks */, |
608 | 635 |
0513109F21CA4103004EF1BE /* ObjectMapper.framework in Frameworks */, |
609 | 636 |
051310A221CA4103004EF1BE /* RxCocoa.framework in Frameworks */, |
610 |
- 051310A321CA4103004EF1BE /* RxDataSources.framework in Frameworks */, |
|
611 | 637 |
051310A421CA4103004EF1BE /* RxSwift.framework in Frameworks */, |
612 | 638 |
051310A621CA4103004EF1BE /* SQLite.framework in Frameworks */, |
613 |
- 05130FA321C9E5E9004EF1BE /* Paiai_iOS.framework in Frameworks */, |
|
614 |
- 05130F4321C94B33004EF1BE /* PaiaiUIKit.framework in Frameworks */, |
|
615 |
- 05130F7F21C95373004EF1BE /* PaiaiDataKit.framework in Frameworks */, |
|
616 | 639 |
); |
617 | 640 |
runOnlyForDeploymentPostprocessing = 0; |
618 | 641 |
}; |
@@ -1251,6 +1274,15 @@ |
||
1251 | 1274 |
6CEBD0F61CA8D680004DBDE0 = { |
1252 | 1275 |
isa = PBXGroup; |
1253 | 1276 |
children = ( |
1277 |
+ 050D719C22531BA60076CE06 /* SQLite.framework */, |
|
1278 |
+ 050D719A22531B860076CE06 /* RxSwift.framework */, |
|
1279 |
+ 050D719822531B780076CE06 /* RxCocoa.framework */, |
|
1280 |
+ 050D719622531B650076CE06 /* PullToRefresh.framework */, |
|
1281 |
+ 050D719422531B520076CE06 /* ObjectMapper.framework */, |
|
1282 |
+ 050D719322531B440076CE06 /* Kingfisher.framework */, |
|
1283 |
+ 050D719122531B360076CE06 /* Alamofire.framework */, |
|
1284 |
+ 050D718F22531B180076CE06 /* Kingfisher.framework */, |
|
1285 |
+ 050D718D22531AF40076CE06 /* RxDataSources.framework */, |
|
1254 | 1286 |
05130FBB21C9F707004EF1BE /* Cartfile */, |
1255 | 1287 |
3864C06C1CAD27EC0048ADAD /* Swift-bridge.h */, |
1256 | 1288 |
6CEBD1011CA8D680004DBDE0 /* Paiai */, |
@@ -1308,7 +1340,6 @@ |
||
1308 | 1340 |
05130FC321CA1997004EF1BE /* RxSwift.framework */, |
1309 | 1341 |
05130FC721CA1997004EF1BE /* RxTest.framework */, |
1310 | 1342 |
05130FC821CA1997004EF1BE /* SQLite.framework */, |
1311 |
- 05130FC021CA196F004EF1BE /* ESPullToRefresh.framework */, |
|
1312 | 1343 |
05130FBD21CA194B004EF1BE /* Differentiator.framework */, |
1313 | 1344 |
); |
1314 | 1345 |
name = Frameworks; |
@@ -1431,14 +1462,14 @@ |
||
1431 | 1462 |
6CEBD0FC1CA8D680004DBDE0 /* Frameworks */, |
1432 | 1463 |
6CEBD0FD1CA8D680004DBDE0 /* Resources */, |
1433 | 1464 |
05D5F0C22015E55000BC890B /* Run Script */, |
1434 |
- 05130F4821C94B33004EF1BE /* Embed Frameworks */, |
|
1465 |
+ 050D718B225317AD0076CE06 /* Embed Frameworks */, |
|
1435 | 1466 |
); |
1436 | 1467 |
buildRules = ( |
1437 | 1468 |
); |
1438 | 1469 |
dependencies = ( |
1439 | 1470 |
05130F4221C94B33004EF1BE /* PBXTargetDependency */, |
1440 |
- 05130F7E21C95373004EF1BE /* PBXTargetDependency */, |
|
1441 |
- 05130FA221C9E5E9004EF1BE /* PBXTargetDependency */, |
|
1471 |
+ 050D7186225317AD0076CE06 /* PBXTargetDependency */, |
|
1472 |
+ 050D718A225317AD0076CE06 /* PBXTargetDependency */, |
|
1442 | 1473 |
); |
1443 | 1474 |
name = Paiai; |
1444 | 1475 |
productName = PaiAi; |
@@ -1527,7 +1558,6 @@ |
||
1527 | 1558 |
isa = PBXResourcesBuildPhase; |
1528 | 1559 |
buildActionMask = 2147483647; |
1529 | 1560 |
files = ( |
1530 |
- 0572B2C221E2FB3E00EAD2A2 /* README.txt in Resources */, |
|
1531 | 1561 |
); |
1532 | 1562 |
runOnlyForDeploymentPostprocessing = 0; |
1533 | 1563 |
}; |
@@ -1550,9 +1580,7 @@ |
||
1550 | 1580 |
isa = PBXResourcesBuildPhase; |
1551 | 1581 |
buildActionMask = 2147483647; |
1552 | 1582 |
files = ( |
1553 |
- 05130FBC21C9F708004EF1BE /* Cartfile in Resources */, |
|
1554 | 1583 |
05E80E3021DF65D5006368C4 /* Assets.xcassets in Resources */, |
1555 |
- 0572B2C121E2FB3E00EAD2A2 /* README.txt in Resources */, |
|
1556 | 1584 |
); |
1557 | 1585 |
runOnlyForDeploymentPostprocessing = 0; |
1558 | 1586 |
}; |
@@ -1561,7 +1589,7 @@ |
||
1561 | 1589 |
/* Begin PBXShellScriptBuildPhase section */ |
1562 | 1590 |
05D5F0C22015E55000BC890B /* Run Script */ = { |
1563 | 1591 |
isa = PBXShellScriptBuildPhase; |
1564 |
- buildActionMask = 12; |
|
1592 |
+ buildActionMask = 8; |
|
1565 | 1593 |
files = ( |
1566 | 1594 |
); |
1567 | 1595 |
inputPaths = ( |
@@ -1585,7 +1613,7 @@ |
||
1585 | 1613 |
"$(DERIVED_FILE_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Kingfisher.framework", |
1586 | 1614 |
"$(DERIVED_FILE_DIR)/$(FRAMEWORKS_FOLDER_PATH)/PullToRefresh.framework", |
1587 | 1615 |
); |
1588 |
- runOnlyForDeploymentPostprocessing = 0; |
|
1616 |
+ runOnlyForDeploymentPostprocessing = 1; |
|
1589 | 1617 |
shellPath = /bin/sh; |
1590 | 1618 |
shellScript = "/usr/local/bin/carthage copy-frameworks\n"; |
1591 | 1619 |
}; |
@@ -1809,20 +1837,20 @@ |
||
1809 | 1837 |
/* End PBXSourcesBuildPhase section */ |
1810 | 1838 |
|
1811 | 1839 |
/* Begin PBXTargetDependency section */ |
1812 |
- 05130F4221C94B33004EF1BE /* PBXTargetDependency */ = { |
|
1813 |
- isa = PBXTargetDependency; |
|
1814 |
- target = 05130F2D21C94B32004EF1BE /* PaiaiUIKit */; |
|
1815 |
- targetProxy = 05130F4121C94B33004EF1BE /* PBXContainerItemProxy */; |
|
1816 |
- }; |
|
1817 |
- 05130F7E21C95373004EF1BE /* PBXTargetDependency */ = { |
|
1840 |
+ 050D7186225317AD0076CE06 /* PBXTargetDependency */ = { |
|
1818 | 1841 |
isa = PBXTargetDependency; |
1819 | 1842 |
target = 05130F6921C95373004EF1BE /* PaiaiDataKit */; |
1820 |
- targetProxy = 05130F7D21C95373004EF1BE /* PBXContainerItemProxy */; |
|
1843 |
+ targetProxy = 050D7185225317AD0076CE06 /* PBXContainerItemProxy */; |
|
1821 | 1844 |
}; |
1822 |
- 05130FA221C9E5E9004EF1BE /* PBXTargetDependency */ = { |
|
1845 |
+ 050D718A225317AD0076CE06 /* PBXTargetDependency */ = { |
|
1823 | 1846 |
isa = PBXTargetDependency; |
1824 | 1847 |
target = 05130F8D21C9E5E8004EF1BE /* Paiai_iOS */; |
1825 |
- targetProxy = 05130FA121C9E5E9004EF1BE /* PBXContainerItemProxy */; |
|
1848 |
+ targetProxy = 050D7189225317AD0076CE06 /* PBXContainerItemProxy */; |
|
1849 |
+ }; |
|
1850 |
+ 05130F4221C94B33004EF1BE /* PBXTargetDependency */ = { |
|
1851 |
+ isa = PBXTargetDependency; |
|
1852 |
+ target = 05130F2D21C94B32004EF1BE /* PaiaiUIKit */; |
|
1853 |
+ targetProxy = 05130F4121C94B33004EF1BE /* PBXContainerItemProxy */; |
|
1826 | 1854 |
}; |
1827 | 1855 |
051310A821CA451B004EF1BE /* PBXTargetDependency */ = { |
1828 | 1856 |
isa = PBXTargetDependency; |
@@ -1896,7 +1924,7 @@ |
||
1896 | 1924 |
CLANG_ENABLE_OBJC_WEAK = YES; |
1897 | 1925 |
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
1898 | 1926 |
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
1899 |
- CODE_SIGN_IDENTITY = ""; |
|
1927 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
1900 | 1928 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
1901 | 1929 |
CODE_SIGN_STYLE = Automatic; |
1902 | 1930 |
CURRENT_PROJECT_VERSION = 1; |
@@ -1931,7 +1959,7 @@ |
||
1931 | 1959 |
CLANG_ENABLE_OBJC_WEAK = YES; |
1932 | 1960 |
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
1933 | 1961 |
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
1934 |
- CODE_SIGN_IDENTITY = ""; |
|
1962 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
1935 | 1963 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
1936 | 1964 |
CODE_SIGN_STYLE = Automatic; |
1937 | 1965 |
CURRENT_PROJECT_VERSION = 1; |
@@ -1967,7 +1995,7 @@ |
||
1967 | 1995 |
CLANG_ENABLE_OBJC_WEAK = YES; |
1968 | 1996 |
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
1969 | 1997 |
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
1970 |
- CODE_SIGN_IDENTITY = ""; |
|
1998 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
1971 | 1999 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
1972 | 2000 |
CODE_SIGN_STYLE = Automatic; |
1973 | 2001 |
CURRENT_PROJECT_VERSION = 1; |
@@ -2015,7 +2043,7 @@ |
||
2015 | 2043 |
CLANG_ENABLE_OBJC_WEAK = YES; |
2016 | 2044 |
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
2017 | 2045 |
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
2018 |
- CODE_SIGN_IDENTITY = ""; |
|
2046 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
2019 | 2047 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
2020 | 2048 |
CODE_SIGN_STYLE = Automatic; |
2021 | 2049 |
CURRENT_PROJECT_VERSION = 1; |
@@ -2059,7 +2087,7 @@ |
||
2059 | 2087 |
CLANG_ENABLE_OBJC_WEAK = YES; |
2060 | 2088 |
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
2061 | 2089 |
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
2062 |
- CODE_SIGN_IDENTITY = ""; |
|
2090 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
2063 | 2091 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
2064 | 2092 |
CODE_SIGN_STYLE = Automatic; |
2065 | 2093 |
CURRENT_PROJECT_VERSION = 1; |
@@ -2084,7 +2112,7 @@ |
||
2084 | 2112 |
SKIP_INSTALL = YES; |
2085 | 2113 |
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; |
2086 | 2114 |
SWIFT_VERSION = 5.0; |
2087 |
- TARGETED_DEVICE_FAMILY = "1,2"; |
|
2115 |
+ TARGETED_DEVICE_FAMILY = 1; |
|
2088 | 2116 |
VERSIONING_SYSTEM = "apple-generic"; |
2089 | 2117 |
VERSION_INFO_PREFIX = ""; |
2090 | 2118 |
}; |
@@ -2098,7 +2126,7 @@ |
||
2098 | 2126 |
CLANG_ENABLE_OBJC_WEAK = YES; |
2099 | 2127 |
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
2100 | 2128 |
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
2101 |
- CODE_SIGN_IDENTITY = ""; |
|
2129 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
2102 | 2130 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
2103 | 2131 |
CODE_SIGN_STYLE = Automatic; |
2104 | 2132 |
CURRENT_PROJECT_VERSION = 1; |
@@ -2122,7 +2150,7 @@ |
||
2122 | 2150 |
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; |
2123 | 2151 |
SKIP_INSTALL = YES; |
2124 | 2152 |
SWIFT_VERSION = 5.0; |
2125 |
- TARGETED_DEVICE_FAMILY = "1,2"; |
|
2153 |
+ TARGETED_DEVICE_FAMILY = 1; |
|
2126 | 2154 |
VERSIONING_SYSTEM = "apple-generic"; |
2127 | 2155 |
VERSION_INFO_PREFIX = ""; |
2128 | 2156 |
}; |
@@ -2247,14 +2275,15 @@ |
||
2247 | 2275 |
6CEBD1121CA8D680004DBDE0 /* Debug */ = { |
2248 | 2276 |
isa = XCBuildConfiguration; |
2249 | 2277 |
buildSettings = { |
2250 |
- ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; |
|
2278 |
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; |
|
2251 | 2279 |
ALWAYS_SEARCH_USER_PATHS = NO; |
2252 | 2280 |
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
2253 | 2281 |
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; |
2254 | 2282 |
CLANG_ENABLE_MODULES = NO; |
2255 | 2283 |
CODE_SIGN_ENTITLEMENTS = PaiAi/PaiAi.entitlements; |
2256 |
- CODE_SIGN_IDENTITY = "iPhone Distribution: Beijing Jiayilai Trade Co., Ltd. (Q38447SL4M)"; |
|
2284 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
2257 | 2285 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
2286 |
+ CODE_SIGN_STYLE = Automatic; |
|
2258 | 2287 |
DEFINES_MODULE = YES; |
2259 | 2288 |
DEVELOPMENT_TEAM = Q38447SL4M; |
2260 | 2289 |
ENABLE_BITCODE = NO; |
@@ -2294,14 +2323,15 @@ |
||
2294 | 2323 |
6CEBD1131CA8D680004DBDE0 /* Release */ = { |
2295 | 2324 |
isa = XCBuildConfiguration; |
2296 | 2325 |
buildSettings = { |
2297 |
- ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; |
|
2326 |
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; |
|
2298 | 2327 |
ALWAYS_SEARCH_USER_PATHS = NO; |
2299 | 2328 |
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
2300 | 2329 |
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; |
2301 | 2330 |
CLANG_ENABLE_MODULES = NO; |
2302 | 2331 |
CODE_SIGN_ENTITLEMENTS = PaiAi/PaiAi.entitlements; |
2303 |
- CODE_SIGN_IDENTITY = "iPhone Distribution: Beijing Jiayilai Trade Co., Ltd. (Q38447SL4M)"; |
|
2332 |
+ CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
2304 | 2333 |
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
2334 |
+ CODE_SIGN_STYLE = Automatic; |
|
2305 | 2335 |
DEBUG_INFORMATION_FORMAT = dwarf; |
2306 | 2336 |
DEFINES_MODULE = YES; |
2307 | 2337 |
DEVELOPMENT_TEAM = Q38447SL4M; |
@@ -1,7 +1,7 @@ |
||
1 | 1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 | 2 |
<Scheme |
3 | 3 |
LastUpgradeVersion = "1020" |
4 |
- version = "1.3"> |
|
4 |
+ version = "1.7"> |
|
5 | 5 |
<BuildAction |
6 | 6 |
parallelizeBuildables = "YES" |
7 | 7 |
buildImplicitDependencies = "YES"> |
@@ -81,6 +81,10 @@ |
||
81 | 81 |
</EnvironmentVariables> |
82 | 82 |
<AdditionalOptions> |
83 | 83 |
</AdditionalOptions> |
84 |
+ <LocationScenarioReference |
|
85 |
+ identifier = "com.apple.dt.IDEFoundation.CurrentLocationScenarioIdentifier" |
|
86 |
+ referenceType = "1"> |
|
87 |
+ </LocationScenarioReference> |
|
84 | 88 |
</LaunchAction> |
85 | 89 |
<ProfileAction |
86 | 90 |
buildConfiguration = "Debug" |
@@ -47,55 +47,41 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate { |
||
47 | 47 |
return true |
48 | 48 |
} |
49 | 49 |
|
50 |
- func application(_ app: UIApplication, open url: URL, |
|
51 |
- options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool { |
|
52 |
- var result: Bool = false |
|
53 |
- #if !((arch(i386) || arch(x86_64))) |
|
54 |
- switch sharedPlatform { |
|
55 |
- case 0: |
|
56 |
- result = WXApi.handleOpen(url, delegate: self) |
|
57 |
- case 1: |
|
58 |
- result = TencentOAuth.handleOpen(url) |
|
59 |
- case 2: |
|
60 |
- result = WeiboSDK.handleOpen(url, delegate: nil) |
|
61 |
- default: |
|
62 |
- assert(false, "\((#file as NSString).lastPathComponent)[\(#line)], \(#function): share error") |
|
63 |
- } |
|
64 |
- #endif |
|
65 |
- return result |
|
66 |
- } |
|
67 | 50 |
|
68 | 51 |
func application(_ application: UIApplication, open url: URL, |
69 | 52 |
sourceApplication: String?, annotation: Any) -> Bool { |
70 | 53 |
var result: Bool = false |
71 | 54 |
#if !((arch(i386) || arch(x86_64))) |
72 |
- switch sharedPlatform { |
|
73 |
- case 0: |
|
74 |
- result = WXApi.handleOpen(url, delegate: self) |
|
75 |
- case 1: |
|
76 |
- result = TencentOAuth.handleOpen(url) |
|
77 |
- case 2: |
|
78 |
- result = WeiboSDK.handleOpen(url, delegate: nil) |
|
79 |
- default: |
|
80 |
- assert(false, "\((#file as NSString).lastPathComponent)[\(#line)], \(#function): share error") |
|
81 |
- } |
|
55 |
+// switch sharedPlatform { |
|
56 |
+// case 0: |
|
57 |
+// result = WXApi.handleOpen(url, delegate: self) |
|
58 |
+// case 1: |
|
59 |
+// result = TencentOAuth.handleOpen(url) |
|
60 |
+// case 2: |
|
61 |
+// result = WeiboSDK.handleOpen(url, delegate: nil) |
|
62 |
+// default: |
|
63 |
+// assert(false, "\((#file as NSString).lastPathComponent)[\(#line)], \(#function): share error") |
|
64 |
+// } |
|
82 | 65 |
|
83 | 66 |
#endif |
84 |
- return result |
|
67 |
+ return WXApi.handleOpen(url, delegate: self) |
|
85 | 68 |
} |
86 | 69 |
|
87 | 70 |
#if !((arch(i386) || arch(x86_64))) |
88 | 71 |
func onResp(_ resp: BaseResp!) { |
89 | 72 |
if let resp = resp as? PayResp { |
90 |
- var userInfo: [String: Int] = ["code": resp.errCode] |
|
73 |
+ let userInfo: [String: Int] = ["code": Int(resp.errCode)] |
|
91 | 74 |
NotificationCenter.default.post(name: Notification.wxNotification.payDidFinish, object: nil, userInfo: userInfo) |
92 |
-// } else if let resp = resp as? SendAuthResp, let code = resp.code { |
|
93 |
-// NotificationCenter.default.post(name: , object: nil, userInfo: userInfo) |
|
94 |
-//// wxLoginJumpFinishCallback?(["code": code as AnyObject], nil) |
|
95 |
-//// wxLoginJumpFinishCallback = nil |
|
75 |
+ } else if let resp = resp as? SendAuthResp { |
|
76 |
+ let userInfo: [String: AnyObject] = ["errCode": Int(resp.errCode) as AnyObject, "code": resp.code as AnyObject] |
|
77 |
+ NotificationCenter.default.post(name: Notification.wxNotification.login, object: nil, userInfo: userInfo) |
|
96 | 78 |
} |
97 | 79 |
} |
98 | 80 |
#endif |
81 |
+ |
|
82 |
+ func application(_ application: UIApplication, handleOpen url: URL) -> Bool { |
|
83 |
+ return WXApi.handleOpen(url, delegate: self) |
|
84 |
+ } |
|
99 | 85 |
} |
100 | 86 |
|
101 | 87 |
private let WIFIUploadOriginal = "WIFIUploadOriginal" |
@@ -9,7 +9,7 @@ |
||
9 | 9 |
<key>CFBundleExecutable</key> |
10 | 10 |
<string>$(EXECUTABLE_NAME)</string> |
11 | 11 |
<key>CFBundleIdentifier</key> |
12 |
- <string>com.Paiai.Paiai</string> |
|
12 |
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
|
13 | 13 |
<key>CFBundleInfoDictionaryVersion</key> |
14 | 14 |
<string>1.0</string> |
15 | 15 |
<key>CFBundleName</key> |
@@ -17,7 +17,7 @@ |
||
17 | 17 |
<key>CFBundlePackageType</key> |
18 | 18 |
<string>APPL</string> |
19 | 19 |
<key>CFBundleShortVersionString</key> |
20 |
- <string>1.1.2</string> |
|
20 |
+ <string>2.0</string> |
|
21 | 21 |
<key>CFBundleSignature</key> |
22 | 22 |
<string>????</string> |
23 | 23 |
<key>CFBundleURLTypes</key> |
@@ -85,10 +85,10 @@ |
||
85 | 85 |
</dict> |
86 | 86 |
<key>NSCameraUsageDescription</key> |
87 | 87 |
<string>App需要您的同意,才能进行拍摄</string> |
88 |
- <key>NSPhotoLibraryUsageDescription</key> |
|
89 |
- <string>App需要您的同意,才能进行查看相册</string> |
|
90 | 88 |
<key>NSPhotoLibraryAddUsageDescription</key> |
91 | 89 |
<string>cc</string> |
90 |
+ <key>NSPhotoLibraryUsageDescription</key> |
|
91 |
+ <string>App需要您的同意,才能进行查看相册</string> |
|
92 | 92 |
<key>UILaunchStoryboardName</key> |
93 | 93 |
<string>LaunchScreen</string> |
94 | 94 |
<key>UIRequiredDeviceCapabilities</key> |
@@ -10,8 +10,6 @@ import Foundation |
||
10 | 10 |
import RxSwift |
11 | 11 |
import ObjectMapper |
12 | 12 |
|
13 |
-struct NonMoreDataError: Error {} |
|
14 |
- |
|
15 | 13 |
struct ContentResource<Content>: Resource { |
16 | 14 |
typealias Model = Content |
17 | 15 |
|
@@ -13,43 +13,9 @@ import RxSwift |
||
13 | 13 |
class NetworkApi { |
14 | 14 |
|
15 | 15 |
public static let share = NetworkApi() |
16 |
- |
|
17 |
- private var synQueues = [OperationQueue]() |
|
18 |
- |
|
19 |
- typealias FailureHandler = ((HTTPURLResponse?) -> Void) |
|
20 |
- typealias ProgressHandler = (() -> Void) |
|
21 |
- typealias FinishHandler = (() -> Void) |
|
22 | 16 |
|
23 | 17 |
private let sessionManager: Session |
24 | 18 |
private let session: Session |
25 |
- |
|
26 |
- var finishHander: FinishHandler = {} |
|
27 |
- |
|
28 |
- var failureHandler: FailureHandler = { response in |
|
29 |
- guard let status = response?.statusCode else { |
|
30 |
- return |
|
31 |
- } |
|
32 |
- let manager = NetworkReachabilityManager() |
|
33 |
- manager?.listener = { networkStatus in |
|
34 |
-// guard let visibleView = UIApplication.shared.keyWindow else { |
|
35 |
-// return |
|
36 |
-// } |
|
37 |
- |
|
38 |
- if networkStatus == .notReachable || networkStatus == .unknown { |
|
39 |
-// FFToastView.showToast(inView: visibleView, withText: "当前网络状态不好") |
|
40 |
- return |
|
41 |
- } |
|
42 |
- |
|
43 |
- if status >= 500 { |
|
44 |
-// FFToastView.showToast(inView: visibleView, withText: "服务器出现异常") |
|
45 |
- } else if status >= 400 { |
|
46 |
- assert(true, "客户端问题") |
|
47 |
- } else if status >= 300 { |
|
48 |
- assert(true, "重定向问题") |
|
49 |
- } |
|
50 |
- } |
|
51 |
- } |
|
52 |
- |
|
53 | 19 |
init() { |
54 | 20 |
sessionManager = Session.default |
55 | 21 |
session = Session.default |
@@ -59,15 +25,37 @@ class NetworkApi { |
||
59 | 25 |
// sessionManager.retrier = OAuthHandler() |
60 | 26 |
} |
61 | 27 |
|
62 |
- public func createSynQueue(identifier: String) { |
|
63 |
- let queue = OperationQueue() |
|
64 |
- queue.name = identifier |
|
65 |
- queue.maxConcurrentOperationCount = 1 |
|
66 |
- queue.qualityOfService = .utility |
|
67 |
- queue.isSuspended = true |
|
68 |
- synQueues.append(queue) |
|
28 |
+ private func handlingError(error: Error) { |
|
29 |
+ guard let err = error as? AFError else { |
|
30 |
+ Toast.show(message: "网络出现未知错误") |
|
31 |
+ return |
|
32 |
+ } |
|
33 |
+ |
|
34 |
+ if err.isSessionDeinitializedError |
|
35 |
+ || err.isSessionInvalidatedError |
|
36 |
+ || err.isInvalidURLError |
|
37 |
+ || err.isRequestAdaptationError { |
|
38 |
+ Toast.show(message: "客户端网络请求出错") |
|
39 |
+ } else if err.isParameterEncoderError || err.isParameterEncodingError { |
|
40 |
+ Toast.show(message: "客户端参数编码出错") |
|
41 |
+ } else if err.isMultipartEncodingError { |
|
42 |
+ Toast.show(message: "客户端上传或者下载参数编码出错") |
|
43 |
+ } else if err.isResponseValidationError { |
|
44 |
+ Toast.show(message: "服务器返回参数出错") |
|
45 |
+ } else if err.isResponseSerializationError { |
|
46 |
+ Toast.show(message: "服务器返回数据出错") |
|
47 |
+ } else if err.isServerTrustEvaluationError { |
|
48 |
+ Toast.show(message: "服务器验证错误") |
|
49 |
+ } else if err.isRequestRetryError { |
|
50 |
+ Toast.show(message: "客户端重试出错") |
|
51 |
+ } else if err.isExplicitlyCancelledError { |
|
52 |
+ return |
|
53 |
+ } else { |
|
54 |
+ Toast.show(message: "网络出现未知错误") |
|
55 |
+ } |
|
69 | 56 |
} |
70 | 57 |
|
58 |
+ |
|
71 | 59 |
public func post<A: Resource>(resource: A) -> Single<A.Model> { |
72 | 60 |
return Single<A.Model>.create(subscribe: { observer in |
73 | 61 |
let request = self.session.request(resource.host + resource.path.rawValue, |
@@ -91,6 +79,7 @@ class NetworkApi { |
||
91 | 79 |
} |
92 | 80 |
|
93 | 81 |
case .failure(let error): |
82 |
+ self.handlingError(error: error) |
|
94 | 83 |
observer(.error(error)) |
95 | 84 |
} |
96 | 85 |
} |
@@ -106,6 +95,7 @@ class NetworkApi { |
||
106 | 95 |
.responseJSON { (res) in |
107 | 96 |
switch res.result { |
108 | 97 |
case .success(let json): |
98 |
+ print(json) |
|
109 | 99 |
guard let json = json as? [String: AnyObject], |
110 | 100 |
let data = resource.parse(json) else { |
111 | 101 |
observer(.error(ParseError())) |
@@ -113,6 +103,7 @@ class NetworkApi { |
||
113 | 103 |
} |
114 | 104 |
observer(.success(data)) |
115 | 105 |
case .failure(let error): |
106 |
+ self.handlingError(error: error) |
|
116 | 107 |
observer(.error(error)) |
117 | 108 |
} |
118 | 109 |
} |
@@ -156,6 +147,7 @@ class NetworkApi { |
||
156 | 147 |
observer(.error(BusinessError(id: status))) |
157 | 148 |
} |
158 | 149 |
case .failure(let error): |
150 |
+ self.handlingError(error: error) |
|
159 | 151 |
observer(.error(error)) |
160 | 152 |
} |
161 | 153 |
}) |
@@ -12,64 +12,28 @@ import RxSwift |
||
12 | 12 |
fileprivate let WXAppid = "wx4e22a0c8ae6d766d" |
13 | 13 |
fileprivate let WXSecret = "636ac848016c593575d11143c55c8333" |
14 | 14 |
|
15 |
-//fileprivate protocol WXUserInfoParse: Parsable where Model == JSON {} |
|
16 |
-// |
|
17 |
-//extension DefaultResource: WXUserInfoParse { |
|
18 |
-// func parse(_ json: JSON) -> JSON? { return json } |
|
19 |
-//} |
|
20 |
-// |
|
21 |
-//fileprivate struct WXResource: Resource, Parsable { |
|
22 |
-// typealias Model = UserInfo |
|
23 |
-// |
|
24 |
-// var path: Interfaces { return .authorize } |
|
25 |
-// var parameter: Parameter = [:] |
|
26 |
-// |
|
27 |
-// func parse(_ json: JSON) -> UserInfo? { |
|
28 |
-// guard let result = json["data"] as? JSON else { return nil } |
|
29 |
-// return UserInfo(json: result) |
|
30 |
-// } |
|
31 |
-//} |
|
32 |
- |
|
33 |
-class WXUserInfoRemoteAPI: UserInfoRemoteAPI { |
|
34 |
- |
|
35 |
- typealias Model = UserInfo |
|
36 |
-// fileprivate var wxResource: WXResource |
|
37 |
-// fileprivate var wxTokenResource: DefaultResource |
|
38 |
-// fileprivate var wxUserInfoResource: DefaultResource |
|
15 |
+struct WXUserInfoRemoteAPI: UserInfoRemoteAPI { |
|
39 | 16 |
|
40 |
- init() { |
|
41 |
- let wxUrl = "https://api.weixin.qq.com" |
|
42 |
-// self.wxResource = WXResource() |
|
43 |
-// self.wxTokenResource = DefaultResource(host: wxUrl, path: .wxAccessToken, parameter: [:]) |
|
44 |
-// self.wxUserInfoResource = DefaultResource(host: wxUrl, path: .wxUserInfo, parameter: [:]) |
|
45 |
- } |
|
17 |
+ init() {} |
|
46 | 18 |
|
47 | 19 |
func login() -> Single<UserInfo> { |
20 |
+ #if (arch(i386) || arch(x86_64)) |
|
48 | 21 |
return Single.create(subscribe: { (observer) in |
49 | 22 |
observer(.success(UserInfo(json: ["user_id": "fiDz2Ms" as AnyObject, "userName": "郑剑飞" as AnyObject, "photoPath": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJibSYLgvXpMakvD9FaCqfiaWqcMiaiaz905YxWPuO4hy8F2lGheV7kVr9vKKXFgmL1S5s4QJgxwuwtVw/132" as AnyObject]))) |
50 | 23 |
return Disposables.create() |
51 | 24 |
}) |
52 |
- return Single.create(subscribe: { (observer) -> Disposable in |
|
53 |
- |
|
54 |
-// let wxLoginObserver = self.addWXLoginDidFinish() |
|
55 |
-// let wxTokenObserver = self.getWXToken() |
|
56 |
-// let wxUserInfoObserver = self.getWXUserInfo() |
|
57 |
-// let loginObserver = self.wxLogin() |
|
58 |
-// |
|
59 |
-// Single.of(wxLoginObserver, |
|
60 |
-// wxTokenObserver, |
|
61 |
-// wxUserInfoObserver) |
|
62 |
-// .concat().asSingle() |
|
63 |
-// .subscribe({_ in |
|
64 |
-// loginObserver.asSingle() |
|
65 |
-// .subscribe(onNext: { (userInfo) in |
|
66 |
-// observer.onNext(userInfo) |
|
67 |
-// self.removeWXLoginDidFinish() |
|
68 |
-// }).dispose() |
|
69 |
-// }).dispose() |
|
70 |
- |
|
71 |
- return Disposables.create() |
|
25 |
+ #else |
|
26 |
+ loginWithWeChat() |
|
27 |
+ return addWXLoginDidFinish().flatMap({ |
|
28 |
+ return self.getWXToken(param: $0) |
|
29 |
+ }).flatMap({ |
|
30 |
+ return self.getWXUserInfo(param: $0) |
|
31 |
+ }).flatMap({ |
|
32 |
+ return self.wxLogin(param: $0) |
|
33 |
+ }).do(onSuccess: { res in |
|
34 |
+ print(res) |
|
72 | 35 |
}) |
36 |
+ #endif |
|
73 | 37 |
} |
74 | 38 |
|
75 | 39 |
fileprivate func loginWithWeChat() { |
@@ -80,68 +44,65 @@ class WXUserInfoRemoteAPI: UserInfoRemoteAPI { |
||
80 | 44 |
WXApi.send(request) |
81 | 45 |
} |
82 | 46 |
|
83 |
-// fileprivate func addWXLoginDidFinish() -> Completable { |
|
84 |
-// return Single.create { (observer) in |
|
85 |
-//// NotificationCenter.default.addObserver(forName: Notification.WXLoginNotification, object: nil, queue: nil) { (notification) in |
|
86 |
-//// guard let userInfo = notification.userInfo, |
|
87 |
-//// let code = userInfo["code"] as? String else { return } |
|
88 |
-//// self.wxTokenResource.parameter = ["appid": WXAppid, "secret": WXSecret, |
|
89 |
-//// "code": code, "grant_type": "authorization_code"] |
|
90 |
-//// observer.onCompleted() |
|
91 |
-//// } |
|
92 |
-//// |
|
93 |
-// return Disposables.create() |
|
94 |
-// } |
|
95 |
-// } |
|
96 |
-// |
|
97 |
-// fileprivate func getWXToken() -> Completable { |
|
98 |
-// return Single.create({ (observer) in |
|
99 |
-//// let resource = ContentResource.init(host:"https://api.weixin.qq.com", |
|
100 |
-//// path: .wxAccessToken, |
|
101 |
-//// parameter: <#T##Parameter#>, parseJSON: <#T##(JSON) -> _?#>) |
|
102 |
-//// NetworkApi.share.get(resource: self.wxTokenResource) { (result) in |
|
103 |
-//// guard case let .success(data) = result, |
|
104 |
-//// let token = data["access_token"] as? String, |
|
105 |
-//// let openId = data["openid"] as? String else { return } |
|
106 |
-//// self.wxUserInfoResource.parameter = ["access_token": token, "openid": openId] |
|
107 |
-//// observer.onCompleted() |
|
108 |
-//// } |
|
109 |
-// |
|
110 |
-// return Disposables.create() |
|
111 |
-// }) |
|
112 |
-// } |
|
113 |
-// |
|
114 |
-// fileprivate func getWXUserInfo() -> Completable { |
|
115 |
-// return Single.create({ (observer) in |
|
116 |
-//// NetworkApi.share.get(resource: self.wxUserInfoResource) { (result) in |
|
117 |
-//// guard case let .success(data) = result else { return } |
|
118 |
-//// if let errcode = data["errcode"] as? Int, |
|
119 |
-//// errcode == 40003 { return } |
|
120 |
-//// self.wxResource.parameter = data |
|
121 |
-//// observer.onCompleted() |
|
122 |
-//// } |
|
123 |
-// |
|
124 |
-// return Disposables.create() |
|
125 |
-// }) |
|
126 |
-// } |
|
127 |
-// |
|
128 |
-// fileprivate func wxLogin() -> Single<UserInfo> { |
|
129 |
-// return Single.create({ (observer) in |
|
130 |
-//// NetworkApi.share.post(resource: self.wxResource) { (result) in |
|
131 |
-//// guard case let .success(data) = result else { return } |
|
132 |
-//// observer.onNext(data) |
|
133 |
-//// observer.onCompleted() |
|
134 |
-//// } |
|
135 |
-//// |
|
136 |
-// return Disposables.create() |
|
137 |
-// }) |
|
138 |
-// } |
|
47 |
+ fileprivate func addWXLoginDidFinish() -> Single<[String: String]> { |
|
48 |
+ return Single.create(subscribe: { observer -> Disposable in |
|
49 |
+ NotificationCenter.default.addObserver(forName: Notification.wxNotification.login, object: nil, queue: nil, using: { notification in |
|
50 |
+ guard let userInfo = notification.userInfo, |
|
51 |
+ let errcode = userInfo["errCode"] as? Int, |
|
52 |
+ let code = userInfo["code"] as? String else { |
|
53 |
+ Toast.show(message: "获取code失败") |
|
54 |
+ return observer(.error(ParseError())) |
|
55 |
+ } |
|
56 |
+ switch errcode { |
|
57 |
+ case 0: |
|
58 |
+ observer(.success(["appid": WXAppid, "secret": WXSecret, |
|
59 |
+ "code": code, "grant_type": "authorization_code"])) |
|
60 |
+ case -4: |
|
61 |
+ Toast.show(message: "您拒绝授权,登录失败") |
|
62 |
+ break |
|
63 |
+ case -2: |
|
64 |
+ Toast.show(message: "您取消了登录,登录失败") |
|
65 |
+ break |
|
66 |
+ default: |
|
67 |
+ Toast.show(message: "发生未知错误,登录失败") |
|
68 |
+ break |
|
69 |
+ } |
|
70 |
+ return observer(.error(BusinessError(id: errcode))) |
|
71 |
+ }) |
|
72 |
+ return Disposables.create() |
|
73 |
+ }) |
|
74 |
+ } |
|
75 |
+ |
|
76 |
+ fileprivate func parseWxToken(json: JSON) -> [String: String]? { |
|
77 |
+ guard let token = json["access_token"] as? String, |
|
78 |
+ let openId = json["openid"] as? String else { return nil } |
|
79 |
+ return ["access_token": token, "openid": openId] |
|
80 |
+ } |
|
81 |
+ |
|
82 |
+ fileprivate func getWXToken(param: [String: String]) -> Single<[String: String]> { |
|
83 |
+ let resource = ContentResource<[String: String]>(host: "https://api.weixin.qq.com", |
|
84 |
+ path: .wxAccessToken, |
|
85 |
+ parameter: param, |
|
86 |
+ parseJSON: parseWxToken) |
|
87 |
+ |
|
88 |
+ return NetworkApi.share.get(resource: resource) |
|
89 |
+ } |
|
90 |
+ |
|
91 |
+ fileprivate func getWXUserInfo(param: [String: String]) -> Single<[String: Any]> { |
|
92 |
+ let resource = ContentResource<[String: Any]>(host: "https://api.weixin.qq.com", |
|
93 |
+ path: .wxUserInfo, |
|
94 |
+ parameter: param, |
|
95 |
+ parseJSON: { $0 }) |
|
96 |
+ return NetworkApi.share.get(resource: resource) |
|
97 |
+ } |
|
139 | 98 |
|
140 |
- fileprivate func removeWXLoginDidFinish() { |
|
141 |
- NotificationCenter.default.removeObserver(self, name: Notification.WXLoginNotification, object: nil) |
|
99 |
+ fileprivate func parseAuthorize(json: JSON) -> UserInfo? { |
|
100 |
+ guard let data = json["data"] as? [String: AnyObject] else { return nil } |
|
101 |
+ return UserInfo(json: data) |
|
142 | 102 |
} |
143 |
-} |
|
144 | 103 |
|
145 |
-extension Notification { |
|
146 |
- static let WXLoginNotification = Notification.Name("WXLoginDidFinishNotification") |
|
104 |
+ fileprivate func wxLogin(param: [String: Any]) -> Single<UserInfo> { |
|
105 |
+ let resource = ContentResource<UserInfo>(path: .authorize, parameter: param, parseJSON: parseAuthorize) |
|
106 |
+ return resource.loadContent() |
|
107 |
+ } |
|
147 | 108 |
} |
@@ -77,11 +77,17 @@ public class UserInfoViewModel { |
||
77 | 77 |
} |
78 | 78 |
|
79 | 79 |
public func wxLogin() { |
80 |
+ Toast.showActivity(message: "正在登陆") |
|
80 | 81 |
repository.wxLogin().subscribe(onSuccess: { (userInfo) in |
81 | 82 |
self.shareUserInfo.accept(userInfo) |
82 | 83 |
self._loginCompleted.onNext(()) |
83 | 84 |
}) { (error) in |
85 |
+ print(error) |
|
84 | 86 |
#warning("错误处理") |
85 | 87 |
}.disposed(by: disposeBag) |
86 | 88 |
} |
89 |
+ |
|
90 |
+ deinit { |
|
91 |
+ print("销毁") |
|
92 |
+ } |
|
87 | 93 |
} |
@@ -11,5 +11,6 @@ import Foundation |
||
11 | 11 |
public extension Notification { |
12 | 12 |
struct wxNotification { |
13 | 13 |
public static let payDidFinish = Notification.Name("WXPayDidFinishNotification") |
14 |
+ public static let login = Notification.Name("WXLoginDidFinishNotification") |
|
14 | 15 |
} |
15 | 16 |
} |
@@ -83,6 +83,5 @@ extension LoginViewController { |
||
83 | 83 |
self.guestLoginBtn.isHidden = false |
84 | 84 |
} |
85 | 85 |
}).disposed(by: disposeBag) |
86 |
- |
|
87 | 86 |
} |
88 | 87 |
} |